package com.dhnsoft.代码随想录.哈希表;

import java.util.HashSet;
import java.util.Set;

/**
 * ClassName: d03_202_快乐数
 * Package: com.dhnsoft.代码随想录.哈希表
 * Description:
 *
 * @Author dhn
 * @Create 2024/3/13 10:40
 * @Version 1.0
 */
public class d03_202_快乐数 {
    public static void main(String[] args) {

    }

    public static boolean isHappy(int n) {
        //初始化一个hashSet,存放不重复的数值，因为数值重复后会进入死循环
        Set<Integer> set = new HashSet<>();
        while (n!=1&&!set.contains(n)){
            set.add(n);
            n = getNext(n);
        }
        return n==1;
    }

    //这个方法用作将传入的数字进行个位分解求和
    public static int getNext(int n){
        int res = 0;
        while (n>0){
            //取个位进行求和
            int temp = n%10;
            res+= temp*temp;
            //取n的下一位
            n = n/10;
        }
        return res;
    }
}
